Dynamic Code Management

نویسندگان

  • Xianglong Huang
  • Brian T Lewis
  • Kathryn S McKinley
چکیده

Poor code locality degrades application performance, especially for large programs such as server applications, by increasing the memory stalls caused by instruction TLB and instruction cache misses. This locality problem is a particular issue for languages such as Java and C# that provide just-in-time (JIT) compilation, dynamic class loading, and dynamic recompilation. Managed runtimes for these languages offer the opportunity to dynamically profile an application’s execution and adapt that execution to improve performance. This paper describes the dynamic code management system (DCM) of our managed runtime that uses dynamic profile information to reorder JIT-compiled code when necessary to improve locality. To place method code, our DCM system supports the widely-used Pettis-Hansen procedure placement algorithm. In addition to this algorithm, we also developed and implemented three new placement algorithms. Our new algorithms can run up to 6000 times faster than the Pettis-Henson algorithm and still achieve the same or better performance improvement, which makes them more suitable for use in high-performance managed runtimes. The new algorithms specifically target ITLB misses, which typically have the greatest impact on performance. Using the DCM, we demonstrate a 6% performance improvement with our new Graph-Walking layout algorithm for the large MiniBean benchmark, a single-process version of the SPECjAppServer20021 enterprise application server benchmark. This performance is 4% better than that provided by Pettis-Hansen placement. Furthermore, instead of the prohibitively expensive 35 minutes Pettis-Hansen layout requires, Graph-Walking layout needs just 0.35 second (6000 times faster). ∗This work is supported by NSF ITR CCR-0085792, NSF CCR0311829, NSF EIA-0303609, DARPA F33615-03-C-4106, ARC DP0452011 and Intel. Any opinions, findings and conclusions expressed herein are the authors and do not necessarily reflect those of the sponsors. 1We use the SPEC benchmarks only as benchmarks to compare the performance of the various techniques within our own VM. We are not using them to compare our VM to any other VM and are not publishing SPEC metrics of any kind. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. VEE’06, June 14-16, 2006, Ottawa, Canada. Copyright 2006 ACM ...$5.00.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Code Cache Management Schemes for Dynamic Optimizers

A dynamic optimizer is a software-based system that performs code modifications at runtime, and several such systems have been proposed over the past several years. These systems typically perform optimization on the level of an instruction trace, and most use caching mechanisms to store recently optimized portions of code. Since the dynamic optimizers produce variable-length code traces that a...

متن کامل

Development of a compression system dynamic simulation code for testing and designing of anti-surge control system

In recent years, several research activities have been conducted to develop knowledge in analysis, design and optimization of compressor anti-surge control system. Since the anti-surge control testing on a full-scale compressor is limited to possible consequences of failure, and also the experimental facility can be expensive to set up control strategies and logic, design process often involves...

متن کامل

Building Certified Libraries for PCC: Dynamic Storage Allocation

Proof-Carrying Code (PCC) allows a code producer to provide to a host a program along with its formal safety proof. The proof attests a certain safety policy enforced by the code, and can be mechanically checked by the host. While this language-based approach to code certification is very general in principle, existing PCC systems have only focused on programs whose safety proofs can be automat...

متن کامل

Code cache management based on working set in dynamic binary translator

Software code cache employed to store translated or optimized codes, amortizes the overhead of dynamic binary translation via reusing of stored-altered copies of original program instructions. Though many conventional code cache managements, such as Flush, Least-Recently Used (LRU), have been applied on some classic dynamic binary translators, actually they are so unsophisticated yet unadaptabl...

متن کامل

Validation of Reverse Engineered Web Application Models

for many firms, especially when combined with areas such as CRM (Customer Relationship Management) and BPR (Business Process Reengineering). The scientific community has focused attention to Web application design, development, analysis, testing, by studying and proposing methodologies and tools. Static and dynamic techniques may be used to analyze existing Web applications. The use of traditio...

متن کامل

Nonlinear dynamic analysis of a four-bar mechanism having revolute joint with clearance

In general, joints are assumed without clearance in the dynamic analysis of multi-body echanical systems. When joint clearance is considered, the mechanism obtains two uncontrollable degrees of freedom and hence the dynamic response considerably changes. The joints’ clearances are the main sources of vibrations and noise due to the impact of the coupling parts in the joints. Therefore, the syst...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005